package br.edu.utfpr.backupTools.view.action.strategy.impl;

import br.edu.utfpr.backupTools.model.pojo.Backup;
import br.edu.utfpr.backupTools.rmi.ClienteRmi;
import br.edu.utfpr.backupTools.view.action.strategy.AbstractBackup;
import br.edu.utfpr.backupTools.view.action.strategy.iterfaces.GerarRestore;
import br.edu.utfpr.comum.BackupDTO;
import br.edu.utfpr.comum.RetornoValidacao;

public class GerarRestoreRemoto extends AbstractBackup implements GerarRestore{

	@Override
	public RetornoValidacao gerarRestore(Backup bean) {
        try{
            BackupDTO dto = new BackupDTO(bean.getId(), bean.getDescricao(), bean.getOrigem(), bean.getDestino());
            //pega o arquivo do servidor
            RetornoValidacao rv = ClienteRmi.getInstance().provider().gerarRestore(dto);

            if(!rv.isOk()){
                return rv;
            }
            //manda gerar o arquivo no cliente
            return controlador.gerarRestoreRemoto(rv.getStream(),bean);
        }
        catch (Exception e){
            e.printStackTrace();
            return new RetornoValidacao("Ocorreu um erro ao gerar o restore");
        }
	}
}
